var apiContent = {
    zTree_Setting: null,
    zTree_Node: null,
    zTree_Function: null,
    overlayDiv: null,
    overlayContent: null,
    overlayDetailDiv: null,
    overlayCloseBtn: null,
    overlayArrow: null,
    contentBoxDiv: null,
    settingDiv: null,
    functionDiv: null,
    overlaySearch: null,
    searchKey: null,
    searchResultInput: null,
    searchPrevBtn: null,
    searchNextBtn: null,
    apiCache: {},
    lastValue: "",
    searchNodes: [],
    searchNodesCur: 0,

    _init: function () {
        this.overlayDiv = $("#overlayDiv");
        this.overlayContent = $("#overlayContent");
        this.overlayDetailDiv = $("#overlayDetailDiv");
        this.overlayCloseBtn = $("#overlayDivCloseBtn");
        this.overlayArrow = $("#overlayDivArrow");
        this.contentBoxDiv = $("#contentBox");
        this.settingDiv = $("#api_setting");
        this.functionDiv = $("#api_function");
        this.searchKey = $(".searchKey");
        this.overlaySearch = $(".overlaySearch");
        this.searchResultInput = $(".searchResult");
        this.searchPrevBtn = $(".searchPrev");
        this.searchNextBtn = $(".searchNext");
        var setting = {
            view: {
                fontCss: this.getFontCss,
                showLine: false,
                showIcon: this.showIcon,
                showTitle: this.getTitle,
                selectedMulti: false,
                dblClickExpand: false
            },
            data: {
                key: {
                    title: "tt"
                },
                simpleData: {
                    enable: true,
                    idKey: "id",
                    pIdKey: "pId",
                    rootPId: ""
                }
            },
            callback: {
                onNodeCreated: this.onNodeCreated,
                beforeClick: this.beforeClick
            }
        };
        var setting_nodes = [
            {id: 1, pId: 0, t: "setting", name: "var setting = {", open: true},
            {id: 11, pId: 1, t: "treeId", name: "treeId : \"\",", iconSkin: "core", showAPI: true},
            {
                id: 12,
                pId: 1,
                t: "treeObj",
                name: "treeObj : null,",
                iconSkin: "core",
                showAPI: true
            },
            {id: 121, pId: 1, name: ""},

            {id: 20, pId: 1, t: "async", name: "async : {", open: true},
            {
                id: 201,
                pId: 20,
                t: "autoParam",
                name: "autoParam : [],",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 208,
                pId: 20,
                t: "contentType",
                name: "contentType : \"application...\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 202,
                pId: 20,
                t: "dataFilter",
                name: "dataFilter : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 203,
                pId: 20,
                t: "dataType",
                name: "dataType : \"text\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 204,
                pId: 20,
                t: "enable",
                name: "enable : false,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 205,
                pId: 20,
                t: "otherParam",
                name: "otherParam : [],",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 206,
                pId: 20,
                t: "type",
                name: "type : \"post\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 209,
                pId: 20,
                t: "headers",
                name: "headers : {},",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 210,
                pId: 20,
                t: "xhrFields",
                name: "xhrFields : {},",
                iconSkin: "core",
                showAPI: true
            },
            {id: 207, pId: 20, t: "url", name: "url : \"\"", iconSkin: "core", showAPI: true},
            {id: 21, pId: 1, name: "},"},
            {id: 22, pId: 1, name: ""},

            {id: 30, pId: 1, t: "callback", name: "callback : {", open: true},
            {
                id: 3001,
                pId: 30,
                t: "beforeAsync",
                name: "beforeAsync : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3002,
                pId: 30,
                t: "beforeCheck",
                name: "beforeCheck : null,",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 3003,
                pId: 30,
                t: "beforeClick",
                name: "beforeClick : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3004,
                pId: 30,
                t: "beforeCollapse",
                name: "beforeCollapse : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3004,
                pId: 30,
                t: "beforeDblClick",
                name: "beforeDblClick : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3005,
                pId: 30,
                t: "beforeDrag",
                name: "beforeDrag : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3006,
                pId: 30,
                t: "beforeDragOpen",
                name: "beforeDragOpen : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3007,
                pId: 30,
                t: "beforeDrop",
                name: "beforeDrop : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3029,
                pId: 30,
                t: "beforeEditName",
                name: "beforeEditName : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3008,
                pId: 30,
                t: "beforeExpand",
                name: "beforeExpand : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3009,
                pId: 30,
                t: "beforeMouseDown",
                name: "beforeMouseDown : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3010,
                pId: 30,
                t: "beforeMouseUp",
                name: "beforeMouseUp : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3011,
                pId: 30,
                t: "beforeRemove",
                name: "beforeRemove : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3012,
                pId: 30,
                t: "beforeRename",
                name: "beforeRename : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3013,
                pId: 30,
                t: "beforeRightClick",
                name: "beforeRightClick : null,",
                iconSkin: "core",
                showAPI: true
            },
            {id: 3014, pId: 30, name: ""},
            {
                id: 3015,
                pId: 30,
                t: "onAsyncError",
                name: "onAsyncError : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3016,
                pId: 30,
                t: "onAsyncSuccess",
                name: "onAsyncSuccess : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3017,
                pId: 30,
                t: "onCheck",
                name: "onCheck : null,",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 3018,
                pId: 30,
                t: "onClick",
                name: "onClick : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3019,
                pId: 30,
                t: "onCollapse",
                name: "onCollapse : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3029,
                pId: 30,
                t: "onDblClick",
                name: "onDblClick : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3020,
                pId: 30,
                t: "onDrag",
                name: "onDrag : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3030,
                pId: 30,
                t: "onDragMove",
                name: "onDragMove : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3021,
                pId: 30,
                t: "onDrop",
                name: "onDrop : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3022,
                pId: 30,
                t: "onExpand",
                name: "onExpand : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3023,
                pId: 30,
                t: "onMouseDown",
                name: "onMouseDown : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3024,
                pId: 30,
                t: "onMouseUp",
                name: "onMouseUp : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3025,
                pId: 30,
                t: "onNodeCreated",
                name: "onNodeCreated : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 3026,
                pId: 30,
                t: "onRemove",
                name: "onRemove : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3027,
                pId: 30,
                t: "onRename",
                name: "onRename : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 3028,
                pId: 30,
                t: "onRightClick",
                name: "onRightClick : null",
                iconSkin: "core",
                showAPI: true
            },
            {id: 31, pId: 1, name: "},"},
            {id: 32, pId: 1, name: ""},

            {id: 40, pId: 1, t: "check", name: "check : {", open: true},
            {
                id: 405,
                pId: 40,
                t: "autoCheckTrigger",
                name: "autoCheckTrigger : false,",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 401,
                pId: 40,
                t: "chkboxType",
                name: "chkboxType : {\"Y\": \"ps\", \"N\": \"ps\"},",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 402,
                pId: 40,
                t: "chkStyle",
                name: "chkStyle : \"checkbox\",",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 403,
                pId: 40,
                t: "enable",
                name: "enable : false,",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 406,
                pId: 40,
                t: "nocheckInherit",
                name: "nocheckInherit : false",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 407,
                pId: 40,
                t: "chkDisabledInherit",
                name: "chkDisabledInherit : false",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 404,
                pId: 40,
                t: "radioType",
                name: "radioType : \"level\"",
                iconSkin: "check",
                showAPI: true
            },
            {id: 41, pId: 1, name: "},"},
            {id: 42, pId: 1, name: ""},

            {id: 50, pId: 1, t: "data", name: "data : {", open: true},
            {id: 500, pId: 50, t: "keep", name: "keep : {", open: true},
            {id: 5001, pId: 500, t: "leaf", name: "leaf : false,", iconSkin: "core", showAPI: true},
            {
                id: 5002,
                pId: 500,
                t: "parent",
                name: "parent : false",
                iconSkin: "core",
                showAPI: true
            },
            {id: 501, pId: 50, name: "},"},

            {id: 510, pId: 50, t: "key", name: "key : {", open: true},
            {
                id: 5101,
                pId: 510,
                t: "checked",
                name: "checked : \"checked\",",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 5102,
                pId: 510,
                t: "children",
                name: "children : \"children\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 5106,
                pId: 510,
                t: "isParent",
                name: "isParent : \"isParent\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 5107,
                pId: 510,
                t: "isHidden",
                name: "isHidden : \"isHidden\",",
                iconSkin: "hide",
                showAPI: true
            },
            {
                id: 5103,
                pId: 510,
                t: "name",
                name: "name : \"name\",",
                iconSkin: "core",
                showAPI: true
            },
            {id: 5104, pId: 510, t: "title", name: "title : \"\"", iconSkin: "core", showAPI: true},
            {id: 5105, pId: 510, t: "url", name: "url : \"url\"", iconSkin: "core", showAPI: true},
            {id: 511, pId: 50, name: "},"},

            {id: 520, pId: 50, t: "simpleData", name: "simpleData : {", open: true},
            {
                id: 5201,
                pId: 520,
                t: "enable",
                name: "enable : false,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 5202,
                pId: 520,
                t: "idKey",
                name: "idKey : \"id\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 5203,
                pId: 520,
                t: "pIdKey",
                name: "pIdKey : \"pId\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 5204,
                pId: 520,
                t: "rootPId",
                name: "rootPId : null",
                iconSkin: "core",
                showAPI: true
            },
            {id: 521, pId: 50, name: "}"},
            {id: 51, pId: 1, name: "},"},
            {id: 52, pId: 1, name: ""},

            {id: 60, pId: 1, t: "edit", name: "edit : {", open: true},
            {id: 601, pId: 60, t: "drag", name: "drag : {", open: true},
            {
                id: 60111,
                pId: 601,
                t: "autoExpandTrigger",
                name: "autoExpandTrigger : true,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60101,
                pId: 601,
                t: "isCopy",
                name: "isCopy : true,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60102,
                pId: 601,
                t: "isMove",
                name: "isMove : true,",
                iconSkin: "edit",
                showAPI: true
            },
            {id: 60103, pId: 601, t: "prev", name: "prev : true,", iconSkin: "edit", showAPI: true},
            {id: 60104, pId: 601, t: "next", name: "next : true,", iconSkin: "edit", showAPI: true},
            {
                id: 60105,
                pId: 601,
                t: "inner",
                name: "inner : true,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60107,
                pId: 601,
                t: "borderMax",
                name: "borderMax : 10,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60108,
                pId: 601,
                t: "borderMin",
                name: "borderMin : -5,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60106,
                pId: 601,
                t: "minMoveSize",
                name: "minMoveSize : 5,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60109,
                pId: 601,
                t: "maxShowNodeNum",
                name: "maxShowNodeNum : 5,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 60110,
                pId: 601,
                t: "autoOpenTime",
                name: "autoOpenTime : 500",
                iconSkin: "edit",
                showAPI: true
            },
            {id: 602, pId: 60, name: "},"},
            {
                id: 608,
                pId: 60,
                t: "editNameSelectAll",
                name: "editNameSelectAll : false,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 603,
                pId: 60,
                t: "enable",
                name: "enable : false,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 604,
                pId: 60,
                t: "removeTitle",
                name: "removeTitle : \"remove\",",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 605,
                pId: 60,
                t: "renameTitle",
                name: "renameTitle : \"rename\",",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 606,
                pId: 60,
                t: "showRemoveBtn",
                name: "showRemoveBtn : true,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 607,
                pId: 60,
                t: "showRenameBtn",
                name: "showRenameBtn : true",
                iconSkin: "edit",
                showAPI: true
            },
            {id: 61, pId: 1, name: "},"},
            {id: 62, pId: 1, name: ""},

            {id: 70, pId: 1, t: "view", name: "view : {", open: true},
            {
                id: 7001,
                pId: 70,
                t: "addDiyDom",
                name: "addDiyDom : null,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7002,
                pId: 70,
                t: "addHoverDom",
                name: "addHoverDom : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 7003,
                pId: 70,
                t: "autoCancelSelected",
                name: "autoCancelSelected : true,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7004,
                pId: 70,
                t: "dblClickExpand",
                name: "dblClickExpand : true,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7005,
                pId: 70,
                t: "expandSpeed",
                name: "expandSpeed : \"fast\",",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7006,
                pId: 70,
                t: "fontCss",
                name: "fontCss : {},",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7012,
                pId: 70,
                t: "nameIsHTML",
                name: "nameIsHTML : false,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7007,
                pId: 70,
                t: "removeHoverDom",
                name: "removeHoverDom : null,",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 7008,
                pId: 70,
                t: "selectedMulti",
                name: "selectedMulti : true,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7009,
                pId: 70,
                t: "showIcon",
                name: "showIcon : true,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7010,
                pId: 70,
                t: "showLine",
                name: "showLine : true,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7011,
                pId: 70,
                t: "showTitle",
                name: "showTitle : true,",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 7012,
                pId: 70,
                t: "txtSelectedEnable",
                name: "txtSelectedEnable : false",
                iconSkin: "core",
                showAPI: true
            },
            {id: 71, pId: 1, name: "}"},

            {id: 2, pId: 0, name: "}"}
        ];

        var treenode_nodes = [
            {id: 1, pId: 0, t: "treeNode", name: "treeNode : {", open: true},
            {id: 101, pId: 1, t: "checked", name: "checked", iconSkin: "check", showAPI: true},
            {id: 102, pId: 1, t: "children", name: "children", iconSkin: "core", showAPI: true},
            {
                id: 128,
                pId: 1,
                t: "chkDisabled",
                name: "chkDisabled",
                iconSkin: "check",
                showAPI: true
            },
            {id: 127, pId: 1, t: "click", name: "click", iconSkin: "core", showAPI: true},
            {
                id: 103,
                pId: 1,
                t: "getCheckStatus",
                name: "getCheckStatus ()",
                iconSkin: "check",
                showAPI: true
            },
            {id: 135, pId: 1, t: "getIndex", name: "getIndex ()", iconSkin: "core", showAPI: true},
            {
                id: 104,
                pId: 1,
                t: "getNextNode",
                name: "getNextNode ()",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 105,
                pId: 1,
                t: "getParentNode",
                name: "getParentNode ()",
                iconSkin: "core",
                showAPI: true
            },
            {id: 136, pId: 1, t: "getPath", name: "getPath ()", iconSkin: "core", showAPI: true},
            {
                id: 106,
                pId: 1,
                t: "getPreNode",
                name: "getPreNode ()",
                iconSkin: "core",
                showAPI: true
            },
            {id: 129, pId: 1, t: "halfCheck", name: "halfCheck", iconSkin: "check", showAPI: true},
            {id: 107, pId: 1, t: "icon", name: "icon", iconSkin: "core", showAPI: true},
            {id: 108, pId: 1, t: "iconClose", name: "iconClose", iconSkin: "core", showAPI: true},
            {id: 109, pId: 1, t: "iconOpen", name: "iconOpen", iconSkin: "core", showAPI: true},
            {id: 110, pId: 1, t: "iconSkin", name: "iconSkin", iconSkin: "core", showAPI: true},
            {id: 131, pId: 1, t: "isHidden", name: "isHidden", iconSkin: "hide", showAPI: true},
            {id: 111, pId: 1, t: "isParent", name: "isParent", iconSkin: "core", showAPI: true},
            {id: 132, pId: 1, t: "name", name: "name", iconSkin: "core", showAPI: true},
            {id: 112, pId: 1, t: "nocheck", name: "nocheck", iconSkin: "check", showAPI: true},
            {id: 113, pId: 1, t: "open", name: "open", iconSkin: "core", showAPI: true},
            {id: 133, pId: 1, t: "target", name: "target", iconSkin: "core", showAPI: true},
            {id: 134, pId: 1, t: "url", name: "url", iconSkin: "core", showAPI: true},
            {id: 114, pId: 1, t: "diy", name: "*DIY*", iconSkin: "core", showAPI: true},
            {id: 115, pId: 1, name: ""},
            {
                id: 116,
                pId: 1,
                t: "check_Child_State",
                name: "[check_Child_State]",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 117,
                pId: 1,
                t: "check_Focus",
                name: "[check_Focus]",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 118,
                pId: 1,
                t: "checkedOld",
                name: "[checkedOld]",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 119,
                pId: 1,
                t: "editNameFlag",
                name: "[editNameFlag]",
                iconSkin: "edit",
                showAPI: true
            },
            {id: 120, pId: 1, t: "isAjaxing", name: "[isAjaxing]", iconSkin: "core", showAPI: true},
            {
                id: 121,
                pId: 1,
                t: "isFirstNode",
                name: "[isFirstNode]",
                iconSkin: "core",
                showAPI: true
            },
            {id: 122, pId: 1, t: "isHover", name: "[isHover]", iconSkin: "edit", showAPI: true},
            {
                id: 123,
                pId: 1,
                t: "isLastNode",
                name: "[isLastNode]",
                iconSkin: "core",
                showAPI: true
            },
            {id: 124, pId: 1, t: "level", name: "[level]", iconSkin: "core", showAPI: true},
            {id: 125, pId: 1, t: "parentTId", name: "[parentTId]", iconSkin: "core", showAPI: true},
            {id: 126, pId: 1, t: "tId", name: "[tId]", iconSkin: "core", showAPI: true},
            {id: 130, pId: 1, t: "zAsync", name: "[zAsync]", iconSkin: "core", showAPI: true},
            {id: 2, pId: 0, name: "}"}
        ];

        var function_nodes = [
            {id: 1, pId: 0, t: "$.fn.zTree", name: "$.fn.zTree : {", open: true},
            {
                id: 11,
                pId: 1,
                t: "init",
                name: "init (obj, zSetting, zNodes)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 12,
                pId: 1,
                t: "getZTreeObj",
                name: "getZTreeObj (treeId)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 14,
                pId: 1,
                t: "destroy",
                name: "destroy (treeId)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 13,
                pId: 1,
                t: "_z",
                name: "_z : {tools, view, event, data}",
                iconSkin: "core",
                showAPI: true
            },
            {id: 2, pId: 0, name: "}"},
            {id: 3, pId: 0, name: ""},
            {id: 4, pId: 0, t: "zTreeObj", name: "zTreeObj : {", open: true},
            {id: 401, pId: 4, t: "setting", name: "setting", iconSkin: "core", showAPI: true},
            {
                id: 402,
                pId: 4,
                t: "addNodes",
                name: "addNodes (parentNode, index, newNodes, isSilent)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 403,
                pId: 4,
                t: "cancelEditName",
                name: "cancelEditName (newName)",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 404,
                pId: 4,
                t: "cancelSelectedNode",
                name: "cancelSelectedNode (node)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 405,
                pId: 4,
                t: "checkAllNodes",
                name: "checkAllNodes (checked)",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 406,
                pId: 4,
                t: "checkNode",
                name: "checkNode (node, checked, checkTypeFlag, callbackFlag)",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 407,
                pId: 4,
                t: "copyNode",
                name: "copyNode (targetNode, node, moveType, isSilent)",
                iconSkin: "edit",
                showAPI: true
            },
            {id: 436, pId: 4, t: "destroy", name: "destroy ()", iconSkin: "core", showAPI: true},
            {
                id: 408,
                pId: 4,
                t: "editName",
                name: "editName (node)",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 409,
                pId: 4,
                t: "expandAll",
                name: "expandAll (expandFlag)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 410,
                pId: 4,
                t: "expandNode",
                name: "expandNode (node, expandFlag, sonSign, focus, callbackFlag)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 411,
                pId: 4,
                t: "getChangeCheckedNodes",
                name: "getChangeCheckedNodes ()",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 412,
                pId: 4,
                t: "getCheckedNodes",
                name: "getCheckedNodes (checked)",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 413,
                pId: 4,
                t: "getNodeByParam",
                name: "getNodeByParam (key, value, parentNode)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 414,
                pId: 4,
                t: "getNodeByTId",
                name: "getNodeByTId (tId)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 415,
                pId: 4,
                t: "getNodeIndex",
                name: "getNodeIndex (node)",
                iconSkin: "core",
                showAPI: true
            },
            {id: 416, pId: 4, t: "getNodes", name: "getNodes ()", iconSkin: "core", showAPI: true},
            {
                id: 431,
                pId: 4,
                t: "getNodesByFilter",
                name: "getNodesByFilter (filter, isSingle, parentNode, invokeParam)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 417,
                pId: 4,
                t: "getNodesByParam",
                name: "getNodesByParam (key, value, parentNode)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 418,
                pId: 4,
                t: "getNodesByParamFuzzy",
                name: "getNodesByParamFuzzy (key, value, parentNode)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 419,
                pId: 4,
                t: "getSelectedNodes",
                name: "getSelectedNodes ()",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 432,
                pId: 4,
                t: "hideNode",
                name: "hideNode (node)",
                iconSkin: "hide",
                showAPI: true
            },
            {
                id: 433,
                pId: 4,
                t: "hideNodes",
                name: "hideNodes (nodes)",
                iconSkin: "hide",
                showAPI: true
            },
            {
                id: 420,
                pId: 4,
                t: "moveNode",
                name: "moveNode (targetNode, node, moveType, isSilent)",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 421,
                pId: 4,
                t: "reAsyncChildNodes",
                name: "reAsyncChildNodes (parentNode, reloadType, isSilent, callback)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 437,
                pId: 4,
                t: "reAsyncChildNodesPromise",
                name: "reAsyncChildNodesPromise(parentNode, reloadType, isSilent)",
                iconSkin: "core",
                showAPI: true
            },
            {id: 422, pId: 4, t: "refresh", name: "refresh ()", iconSkin: "core", showAPI: true},
            {
                id: 423,
                pId: 4,
                t: "removeChildNodes",
                name: "removeChildNodes (parentNode)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 424,
                pId: 4,
                t: "removeNode",
                name: "removeNode (node, callbackFlag)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 425,
                pId: 4,
                t: "selectNode",
                name: "selectNode (node, addFlag, isSilent)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 430,
                pId: 4,
                t: "setChkDisabled",
                name: "setChkDisabled (node, disabled, inheritParent, inheritChildren)",
                iconSkin: "check",
                showAPI: true
            },
            {
                id: 426,
                pId: 4,
                t: "setEditable",
                name: "setEditable (editable)",
                iconSkin: "edit",
                showAPI: true
            },
            {
                id: 434,
                pId: 4,
                t: "showNode",
                name: "showNode (node)",
                iconSkin: "hide",
                showAPI: true
            },
            {
                id: 435,
                pId: 4,
                t: "showNodes",
                name: "showNodes (nodes)",
                iconSkin: "hide",
                showAPI: true
            },
            {
                id: 427,
                pId: 4,
                t: "transformToArray",
                name: "transformToArray (nodes)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 428,
                pId: 4,
                t: "transformTozTreeNodes",
                name: "transformTozTreeNodes (simpleNodes)",
                iconSkin: "core",
                showAPI: true
            },
            {
                id: 429,
                pId: 4,
                t: "updateNode",
                name: "updateNode (node, checkTypeFlag)",
                iconSkin: "core",
                showAPI: true
            },
            {id: 5, pId: 0, name: "}"}
        ];

        apiContent.zTree_Setting = $.fn.zTree.init($("#settingTree"), $.fn.zTree._z.tools.clone(setting), setting_nodes);
        apiContent.zTree_Node = $.fn.zTree.init($("#treenodeTree"), $.fn.zTree._z.tools.clone(setting), treenode_nodes);
        apiContent.zTree_Function = $.fn.zTree.init($("#functionTree"), $.fn.zTree._z.tools.clone(setting), function_nodes);
        this.bindEvent();

    },
    bindEvent: function () {
        $(document).bind("keydown", this.listenKeyDown)
        this.overlayCloseBtn.bind("click", apiContent.overlayClose);
        this.searchResultInput.bind("click", function (e) {
            $(this).prev().get(0).focus();
            this.blur();
        }).bind("focus", function (e) {
            this.blur();
        });
        this.searchKey.bind("focus", this.focusKey)
            .bind("blur", this.blurKey)
            .bind("propertychange", this.searchNode)
            .bind("input", this.searchNode);
        this.searchPrevBtn.bind("click", this.searchPrev);
        this.searchNextBtn.bind("click", this.searchNext);
    },
    setSameKey: function (value) {
        apiContent.searchKey.attr("value", value);
    },
    focusKey: function (e) {
        if (apiContent.searchKey.hasClass("empty")) {
            apiContent.searchKey.removeClass("empty");
        }
    },
    blurKey: function (e) {
        apiContent.setSameKey(e.target.value);
        if (e.target.value === "") {
            apiContent.searchKey.addClass("empty");
        }
    },
    listenKeyDown: function (e) {
        if (e.keyCode == "13" && apiContent.overlayDiv.is(":hidden")) {
            apiContent.openAPI();
        } else if (e.keyCode == "37") {
            apiContent.searchPrev();
        } else if (e.keyCode == "13" || e.keyCode == "39") {
            apiContent.searchNext();
        }
    },
    openAPI: function () {
        if (apiContent.searchNodes.length > 0) {
            var setting_zTree = $.fn.zTree.getZTreeObj("settingTree"),
                treenode_zTree = $.fn.zTree.getZTreeObj("treenodeTree"),
                function_zTree = $.fn.zTree.getZTreeObj("functionTree");
            if (apiContent.searchNodesCur < 0 || apiContent.searchNodesCur > apiContent.searchNodes.length - 1) {
                apiContent.searchNodesCur = 0;
            }
            var node = apiContent.searchNodes[apiContent.searchNodesCur];

            if (node.tId.indexOf("setting") > -1) {
                setting_zTree.selectNode(node);
            } else if (node.tId.indexOf("treenode") > -1) {
                treenode_zTree.selectNode(node);
            } else {
                function_zTree.selectNode(node);
            }
            apiContent.beforeClick(node.tId.substring(0, node.tId.indexOf("_")), node, true);
            apiContent.searchCur();
        }
    },
    searchNode: function (e) {
        var setting_zTree = $.fn.zTree.getZTreeObj("settingTree"),
            treenode_zTree = $.fn.zTree.getZTreeObj("treenodeTree"),
            function_zTree = $.fn.zTree.getZTreeObj("functionTree");
        if (apiContent.curKey == e.target.value) return;
        apiContent.curKey = e.target.value;
        var value = $.trim(apiContent.curKey);
        apiContent.setSameKey(apiContent.curKey);
        if (apiContent.searchKey.hasClass("empty")) {
            value = "";
            apiContent.searchResultInput.removeClass("noResult").attr("value", "");
        }
        if (apiContent.lastValue === value) return;

        apiContent.updateNodes(false);
        apiContent.lastValue = value;
        if (value === "" || value.length < 2) {
            apiContent.searchNodes = [];
            apiContent.searchNodesCur = -1;
            apiContent.searchCur(true);
            return;
        }

        var settingNodeList = setting_zTree.getNodesByFilter(apiContent.searchFilter);
        var functionNodeList = function_zTree.getNodesByFilter(apiContent.searchFilter);
        var treenodeNodeList = treenode_zTree.getNodesByFilter(apiContent.searchFilter);
        apiContent.searchNodes = settingNodeList.concat(functionNodeList).concat(treenodeNodeList);
        apiContent.searchNodesCur = -1;
        apiContent.searchCur();
        apiContent.updateNodes(true);
    },
    searchFilter: function (node) {
        var value = $.trim(apiContent.searchKey.get(0).value).toLowerCase();
        return (node.showAPI && node.name.toLowerCase().indexOf(value) > -1);
    },
    searchPrev: function (e) {
        if (apiContent.searchPrevBtn.hasClass("disabled")) return;
        apiContent.searchNodesCur--;
        if (apiContent.searchNodesCur < 0 || apiContent.searchNodesCur > apiContent.searchNodes.length - 1) {
            apiContent.searchNodesCur = apiContent.searchNodes.length - 1;
        }
        apiContent.openAPI();
    },
    searchNext: function (e) {
        if (apiContent.searchNextBtn.hasClass("disabled")) return;
        apiContent.searchNodesCur++;
        apiContent.openAPI();
    },
    searchCur: function (init) {
        var result = apiContent.searchNodes;
        if (init) {
            apiContent.searchResultInput.removeClass("noResult").attr("value", "");
        } else if (result.length == 0) {
            apiContent.searchResultInput.addClass("noResult").attr("value", "  [ 0 / 0 ]  ");
        } else {
            apiContent.searchResultInput.removeClass("noResult").attr("value", " [ " + (apiContent.searchNodesCur > -1 ? apiContent.searchNodesCur + 1 : "?") + " / " + result.length + " ] ");
        }
        if (result.length > 0) {
            apiContent.searchPrevBtn.removeClass("disabled");
            apiContent.searchNextBtn.removeClass("disabled");
        } else {
            apiContent.searchPrevBtn.addClass("disabled");
            apiContent.searchNextBtn.addClass("disabled");
        }
    },
    updateNodes: function (highlight) {
        var setting_zTree = $.fn.zTree.getZTreeObj("settingTree"),
            treenode_zTree = $.fn.zTree.getZTreeObj("treenodeTree"),
            function_zTree = $.fn.zTree.getZTreeObj("functionTree"),
            node = null;
        for (var i = 0, l = apiContent.searchNodes.length; i < l; i++) {
            node = apiContent.searchNodes[i];
            if (node.level > 0) {
                node.highlight = highlight;
                if (node.tId.indexOf("setting") > -1) {
                    setting_zTree.updateNode(node);
                } else if (node.tId.indexOf("treenode") > -1) {
                    treenode_zTree.updateNode(node);
                } else {
                    function_zTree.updateNode(node);
                }
            }
        }
    },
    getFontCss: function (treeId, treeNode) {
        return (!!treeNode.highlight) ? {color: "#A60000", "font-weight": "bold"} : {
            color: "#333",
            "font-weight": "normal"
        };
    },
    getTitle: function (treeId, node) {
        var t = [], n = node;
        while (n && !!n.t) {
            t.push(n.t);
            n = n.getParentNode();
        }
        t = t.reverse();
        node.tt = t.join('.');
        return true;
    },
    showIcon: function (treeId, node) {
        return (!!node.iconSkin);
    },
    onNodeCreated: function (e, treeId, node) {
        var a = $("#" + node.tId + "_a");
        if (node.showAPI) {
            a.attr("rel", "#overlayDiv");
        } else {
            a.css({cursor: "default"});
        }
    },
    beforeClick: function (treeId, node, noClear) {
        if (!node.showAPI) return false;
        var o = $("#" + node.tId + "_a");
        if (!!apiContent.apiCache[node.tId]) {
            apiContent.tmpDiv.html(apiContent.apiCache[node.tId]);
            apiContent.overlayShow(o, (apiContent.lastNode === node));
        } else {
            apiContent.overlayAjax(treeId, node);
        }
        apiContent.lastNode = node;
        if (node.tId.indexOf("settingTree") > -1) {
            apiContent.settingDiv.removeClass("right").addClass("left");
            apiContent.functionDiv.removeClass("left").addClass("right");
        } else {
            apiContent.settingDiv.removeClass("left").addClass("right");
            apiContent.functionDiv.removeClass("right").addClass("left");
        }

        if (!noClear) {
            apiContent.clearSelectedNode();
        }
        return true;
    },
    clearSelectedNode: function () {
        apiContent.zTree_Setting.cancelSelectedNode();
        apiContent.zTree_Node.cancelSelectedNode();
        apiContent.zTree_Function.cancelSelectedNode();
    },
    overlayAutoClose: function (e) {
        var eId = e.target.id, eRel = e.target.getAttribute("rel"), eClass = e.target.className;
        if (eId === "overlayDiv" || eId === "overlayDivArrow" || eClass.indexOf("searchPrev") > -1 || eClass.indexOf("searchNext") > -1 || !!eRel) return;
        if (!$(e.target).parents("[rel]").length && !$(e.target).parents("#overlayDiv").length) {
            apiContent.overlayClose();
        }
    },
    overlayClose: function () {
        var o = apiContent.overlayDiv;
        o.stop();
        apiContent.clearSelectedNode();
        if (ie) {
            o.hide();
        } else {
            setTimeout(function () {
                o.fadeTo("fast", 0, function () {
                    o.hide();
                })
            }, 200);
        }
        $(document).unbind("click", apiContent.overlayAutoClose);
    },
    overlayShow: function (target, isSameNode) {
        var w = $(window), o = apiContent.overlayDiv, a = apiContent.overlayArrow,
            oc = apiContent.overlayContent, c = apiContent.contentBoxDiv,
            t = target.offset().top - 30,
            cMaxLeft = c.offset().left + c.outerWidth({margin: true}) - o.outerWidth({margin: true}) - 10,
            l = Math.min(cMaxLeft, target.offset().left + target.width() + 40),
            arrowT = target.offset().top + 16,
            wMinTop = 100, footerHeight = 50, onlyFade = false,
            wHeight = w.height(), wScrollTop = w.scrollTop(),
            wMaxTop = wHeight + wScrollTop - footerHeight;
        if (!apiContent.overlayMaxTop) {
            apiContent.overlayMaxTop = apiContent.contentBoxDiv.offset().top + apiContent.contentBoxDiv.height();
        }
        o.stop();
        if (o.css("display") !== "block") {
            o.css({top: t, left: l});
            a.css({top: arrowT - t});
            $(document).bind("click", apiContent.overlayAutoClose);
        }
        if (ie) {
            onlyFade = true;
            o.show();
        } else {
            o.fadeTo("fast", 1);
        }

        var h = apiContent.tmpDiv.outerHeight({margin: true}) + apiContent.overlaySearch.outerHeight();
        if ((t + h) > wMaxTop) {
            t = wMaxTop - h;
        }
        if ((t + h) > apiContent.overlayMaxTop) {
            t = apiContent.overlayMaxTop - h;
        }
        t = Math.max(t, wScrollTop, wMinTop);
        if ((t + h) > ($("body").height() - footerHeight - 20)) {
            o.css("padding-bottom", footerHeight + "px");
        } else {
            o.css("padding-bottom", "0");
        }
        apiContent.overlayDetailDiv.empty();
        apiContent.overlayDetailDiv.append(apiContent.tmpDiv.children());
        if (!onlyFade) {
            onlyFade = (isSameNode && t === parseInt(o.css("top").replace("px", "")));
        }

        a.removeClass("reverse");
        if ((arrowT - t) > (h - 55)) {
            a.addClass("reverse");
            arrowT -= 55;
        }

        if (onlyFade) {
            o.css({top: t, left: l});
            oc.css({height: h});
            a.css({top: arrowT - t});
        } else {
            o.animate({top: t, left: l}, {duration: "normal", easing: "swing", complete: null});
            oc.animate({height: h}, {duration: "fast", easing: "swing", complete: null});
            a.animate({top: arrowT - t}, {duration: "normal", easing: "linear", complete: null});
        }
    },
    overlayAjax: function (treeId, node) {
        var o = $("#" + node.tId + "_a");
        if (node.isAjax) return;
        node.isAjax = true;
        $.ajax({
            type: "get",
            url: "" + lang + "/" + node.tt.replace("$.", "") + ".html",
            data: null,
            dataType: "text",
            success: function (msg) {
                if (!apiContent.tmpDiv) {
                    var tmpDiv = $(document.createElement("div"));
                    tmpDiv.addClass("baby_overlay_tmp");
                    $("body").append(tmpDiv)
                    apiContent.tmpDiv = $(document.createElement("div"));
                    apiContent.tmpDiv.addClass("details");
                    tmpDiv.append(apiContent.tmpDiv);

                } else {
                    apiContent.tmpDiv.empty();
                }
                apiContent.tmpDiv.html(msg);
                apiContent.overlayShow(o, false);
                apiContent.apiCache[node.tId] = msg;
                node.isAjax = false;
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(ajaxMsg)
                if (apiContent.tmpDiv) apiContent.tmpDiv.empty();
                node.isAjax = false;
            }
        });
    }
}